import java.awt.Graphics;
import java.awt.Image;

public class Repairing {
	public Image image;
	public int x, y;

	public boolean active;

	// image에서 불러온 이미지안에서 나뉘는 이미지들의 갯수
	public int count;
	// 나뉘는 이미지의 넓이
	public int width;
	// 나뉘는 이미지의 높이
	public int height;

	// 현재 표시할 나뉘는 이미지의 위치
	private int currentIndex = -1;

	private long prevChangeTime = 0;
	// 숫자가 높을수록 화면이 느리게 보임
	private long changeSpeed = 50;

	public Repairing(Image image, int x, int y, int count) {
		this.image = image;
		this.x = x;
		this.y = y;
		this.count = count;

		width = image.getWidth(null) / count;
		height = image.getHeight(null);
		active = true;
	}

	public void update() {

		long currentTime = System.currentTimeMillis();
		if (currentTime - prevChangeTime > changeSpeed) {
			currentIndex++;
			if (currentIndex == count) {
				active = false;
			}
			prevChangeTime = currentTime;
		}
	}

	public void render(Graphics g) {
		if (active) {
			g.drawImage(image, x, // 표시할 화면의 좌상단 x좌표
					y, // 표시할 화면의 좌상단 y좌표
					x + width, // 표시할 화면의 우하단 x좌표
					y + height, // 표시할 화면의 우하단 y좌표
					width * currentIndex, // 원본 이미지에서 잘라낼 영역의 좌상단 x좌표
					0, // 원본 이미지에서 잘라낼 영역의 좌상단 y좌표
					width * (currentIndex + 1), // 원본 이미지에서 잘라낼 영역의 우하단 x좌표
					height, // 원본 이미지에서 잘라낼 영역의 우하단 y좌표
					null);
		}
	}
}
